上一篇提到 ISO/IEC 27037 的 Acquisition(證據擷取),其中一項重要工作,就是建立數位證據的副本。
但這裡的「複製」,和我們平常把檔案拖到另一顆硬碟不太一樣。
如果只是複製看得到的檔案,可能會漏掉已刪除資料、Slack Space、Unallocated Space,甚至其他沒有直接顯示在檔案系統中的內容。
因此在進行磁碟鑑識時,通常會先建立一份 Forensic Image(鑑識映像),再針對取得的 Image 進行後續分析。
Forensic Image 可以分成 Physical Image 和 Logical Image。
Physical Image 會把整個儲存裝置的內容完整複製下來,因此除了目前存在的檔案之外,也能保留 Deleted Data、File Slack、Unallocated Space,以及其他底層區域。
Logical Image 則只取得指定的檔案或 Volume,速度比較快、資料量也比較小,但不會包含完整的 Slack Space 或已刪除區域。
| 比較項目 | Physical Image | Logical Image |
|---|---|---|
| 取得範圍 | 整個儲存裝置 | 指定檔案或 Volume |
| Deleted Data | 有機會保留 | 通常不包含 |
| Slack / Unallocated Space | 可包含 | 不包含 |
| 資料量 | 較大 | 較小 |
| 適合情境 | 完整磁碟鑑識 | 無法或不需要取得整顆裝置時 |
所以如果今天要調查的是一顆硬碟,Physical Image 的價值就在於不只取得現在「看得到」的資料,也把可能留下痕跡的空間一起保存下來。
在真正開始讀取證物之前,還有一個很重要的東西:Write Blocker(防寫裝置)
Evidence Drive → Write Blocker → Forensic Workstation
它的目的很簡單,就是讓鑑識端可以讀取證物,但不要對原始儲存媒體寫入資料。
像 FTK Imager 本身沒有內建儲存媒體防寫機制,所以在實際連接證物時,還需要搭配硬體 Write Blocker 或其他防寫方式。
因此一個典型的 Acquisition 流程可以整理成:
確認來源設備 → Write Blocker → Acquire → Verify
先確認來源、控制寫入,再建立 Image,最後確認取得結果是否正確。
開始建立 Image 之後,會遇到的問題就是:這份 Image 要存成什麼格式?
FTK Imager 可以建立多種 Evidence File,例如:RAW / DD、E01、S01、L01、AFF、AD1
以下為比較常見的幾種:
| 格式 | 說明 |
|---|---|
| RAW / DD | 直接保存取得到的磁碟資料,格式單純、檔案大,適合快速擷取和跨平台分析 |
| E01 | 正式的法證格式,適合當作法庭證據,最常使用 |
| L01 | 主要用於邏輯性資料,例如手機資料、文件掃描檔、畫面截圖等 |
| AD1 | Access Data’s Evidence file format,可加入 Evidence Item,較少用 |
其中 E01 與 L01 還可以設定 File Segment Size。
如果一份 Image 很大,不一定要全部存成單一檔案,而是可以依照設定的大小分割成多個 Segment。
例如一份 20 GB 的證據映像,如果設定每個 Segment 為 2 GB,就會被切成多個檔案,方便後續保存、搬移與管理。
E01 和單純保存資料的 RAW Image 不太一樣,除了實際取得的 Data Blocks,還會一起保存案件資訊與驗證相關資料。

從圖中可以看到,一份 E01 Evidence File 大致包含:
也就是說,E01 除了會保存磁碟資料,也會把取得資訊與完整性驗證相關資料一起保留下來。
在建立 E01 / L01 的過程中,會針對特定大小的 Data Block 計算 CRC,並把結果一起保存。
CRC 主要是在檢查個別資料區塊是否發生錯誤。
而當整份 Image 建立完成後,還會再保存整體的 Hash 值,例如 MD5 或 SHA-1,並將這個值作為 Acquisition Hash 保存。
所以兩者驗證的範圍不太一樣:
| 驗證方式 | 驗證範圍 | 用途 |
|---|---|---|
| CRC | 個別 Data Block | 檢查區塊資料是否發生錯誤 |
| Hash | 整份 Image | 驗證整體映像內容是否一致 |
之後如果要再次確認 Image 的完整性,就可以重新計算 Hash,並和當初建立時留下的 Acquisition Hash 進行比對。
如果 Acquisition Hash = Verification Hash,就表示目前驗證的 Image 和當初完成 Acquisition 時的內容一致。